I will discuss how to integrate youtube video in asp.net. Youtube provides the API to access the its huge database of videos. It also provides search facility and customized player for integration.
First thing you need is to get developer key for accessing youtube service. You can get it from here. Once you get the developer you can use the API URL to retrieve youtube videos. The URL is,
1: http://www.youtube.com/api2_rest
Fig – (1) Youtube API URL
There specific parameters that you need to pass in query string to get desire result from youtube. See the list below,
1: Parameter Description
2: =============================================================================================
3: method youtube.videos.list_by_tag (only needed as an explicit parameter for REST calls)
4: dev_id Your developer ID .
5: tag Search keyword
6: page The "page number" of results you want to retrieve (e.g. 1, 2, 3)
7: per_page The number of results you want to retrieve per page (default 20, maximum 100)
Fig – (2) Parameters for youtube querystring
So from fig – (1) and (2) if you need to search video for asp.net and you need 10 records per page and page should display 3rd page the the URL will be,
1: http://www.youtube.com/api2_rest?method=youtube.videos.list_by_tag&dev_id=YOURDEVELOPERID&tag=asp.net&page=3&per_page=10
2:
Fig – (3) Querystring for youtube video
Use page=-1 and per_page=-1 to display all the videos on same page without paging. You will get reply in XML format from this URL. You can retrieve that XML as XML document and use XQuery to to get the desire result. OR you can generate dataset from that XML using ReadXML method. I have used ReadXML method.
This will create three tables (1) ut_response , (2) video_list and (3) video. in dataset. ut_response table contains the information whether the supplied DeveloperId is correct? If yes, the status field contains “ok”. video_list contains total number of videos returned. video table contains the information about the videos.
1: private void GetYoutubeVedio()
2: {
3:
4: StringBuilder stbURL = new StringBuilder("http://www.youtube.com/api2_rest?");
5: stbURL.Append("method=youtube.videos.list_by_tag");
6: stbURL.Append("&dev_id=" + DEVELOPERKEY);
7: stbURL.Append("&tag=" + txtSearch.Text.Trim());
8: stbURL.Append("&page=-1&per_page=-1"); // you can add custom paging if desired
9:
10: DataSet ds = new DataSet();
11: ds.ReadXml(stbURL.ToString());
12:
13: dlYoutube.DataSource = ds.Tables[2];
14: dlYoutube.DataBind();
15:
16:
17: }
Fig – (4) Function to retrieve youtube video in ASP.NET
You can retrieve youtube videos using above function in ASP.NET. Youtube also provides player integration details.
Lets have a look at the code below. This code displays all youtube videos played in same asp.net page.
1: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GetYouTubeVedios.aspx.cs"
2: Inherits="Youtube_GetYouTubeVedios" %>
3:
4: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5: <html xmlns="http://www.w3.org/1999/xhtml">
6: <head runat="server">
7: <title>Get Youtube Vedios</title>
8: </head>
9: <script src="swfobject.js" type="text/jscript"></script>
10: <script type="text/javascript">
11:
12: var params = { allowScriptAccess: "always" };
13: var atts = { id: "myytplayer" };
14:
15:
16: </script>
17: <body>
18: <form id="form1" runat="server">
19: <div>
20: <table >
21: <tr>
22: <td>
23: Sample application to fetch vedios from Youtube.
24: </td>
25: </tr>
26: <tr>
27: <td>
28: First you need to create developer account in youtube to get developer key. You can get
29: <a href="http://youtube.com/signup?next=/my_profile_dev" target="_blank">here</a>.
30: </td>
31: </tr>
32: <tr>
33: <td>
34: Enter Seach text :
35: <asp:TextBox ID="txtSearch" runat="server" ></asp:TextBox>
36: <asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="btnSearch_Click" />
37: </td>
38: </tr>
39: <tr>
40: <td>
41: <br />
42: </td>
43: </tr>
44: <tr>
45: <td width="80%">
46: <asp:DataList ID="dlYoutube" runat="server" CellPadding="4" ForeColor="#333333" OnItemDataBound="dlYoutube_ItemDataBound">
47: <ItemTemplate>
48: <table>
49: <tr>
50: <td colspan="2">
51: <asp:Label ID="lblTotle" Font-Bold="true" runat="server" Text='<%# Eval("title")%>'></asp:Label>
52: </td>
53: </tr>
54: <tr>
55: <td valign="top">
56: <%--<a id="aURL" style="text-decoration: none" runat="server" href='<%# Eval("url")%>'>
57: <asp:Image ID="imgImage" runat="server" ImageUrl='<%# Eval("thumbnail_url")%>' />
58: </a>--%>
59: <div runat="server" id="player"></div>
60: <asp:Literal ID="ltrl" runat="server"></asp:Literal>
61: </td>
62: <td valign="top">
63: <table width="100%">
64: <tr>
65: <td>
66: <asp:Label ID="lblAuthor" runat="server" Text="Author : "></asp:Label>
67: </td>
68: <td>
69: <asp:Label ID="lblAuthorName" runat="server" Text='<%# Eval("author")%>'></asp:Label>
70: </td>
71: </tr>
72: <tr>
73: <td valign="top">
74: <asp:Label ID="Label1" runat="server" Text="Description : "></asp:Label>
75: </td>
76: <td>
77: <asp:Label ID="Label2" runat="server" Text='<%# Eval("description")%>'></asp:Label>
78: </td>
79: </tr>
80: <tr>
81: <td>
82: <asp:Label ID="Label3" runat="server" Text="Rating : "></asp:Label>
83: </td>
84: <td>
85: <asp:Label ID="Label4" runat="server" Text='<%# Eval("rating_avg")%>'></asp:Label>
86: </td>
87: </tr>
88: </table>
89: </td>
90: </tr>
91: </table>
92: </ItemTemplate>
93: <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
94: <SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
95: <AlternatingItemStyle BackColor="White" ForeColor="#284775" />
96: <ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
97: <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
98: </asp:DataList>
99: </td>
100: </tr>
101: </table>
102: </div>
103: </form>
104: </body>
105: </html>
Fig – (5) Youtube asp.net aspx page.
1: using System;
2: using System.Data;
3: using System.Configuration;
4: using System.Collections;
5: using System.Web;
6: using System.Web.Security;
7: using System.Web.UI;
8: using System.Web.UI.WebControls;
9: using System.Web.UI.WebControls.WebParts;
10: using System.Web.UI.HtmlControls;
11: using System.Text;
12:
13:
14: public partial class Youtube_GetYouTubeVedios : System.Web.UI.Page
15: {
16: const string DEVELOPERKEY = "YOUR DEVELOPER KEY";
17:
18: protected void Page_Load(object sender, EventArgs e)
19: {
20:
21: }
22:
23: private void GetVedio()
24: {
25:
26: StringBuilder stbURL = new StringBuilder("http://www.youtube.com/api2_rest?");
27: stbURL.Append("method=youtube.videos.list_by_tag");
28: stbURL.Append("&dev_id=" + DEVELOPERKEY);
29: stbURL.Append("&tag=" + txtSearch.Text.Trim());
30: stbURL.Append("&page=-1&per_page=-1"); // you can add custom paging if desired
31:
32: DataSet ds = new DataSet();
33: ds.ReadXml(stbURL.ToString());
34:
35: dlYoutube.DataSource = ds.Tables[2];
36: dlYoutube.DataBind();
37:
38:
39: }
40:
41: protected void btnSearch_Click(object sender, EventArgs e)
42: {
43: GetVedio();
44: }
45: protected void dlYoutube_ItemDataBound(object sender, DataListItemEventArgs e)
46: {
47: if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
48: {
49: HtmlControl div = (HtmlControl)e.Item.FindControl("player");
50: Literal objL = (Literal)e.Item.FindControl("ltrl");
51: objL.Text = "<script language='javascript' type='text\\javascript'>swfobject.embedSWF('http://www.youtube.com/v/" + Convert.ToString(DataBinder.Eval(e.Item.DataItem,"id")) + "&enablejsapi=1&playerapiid=ytplayer','" + div.ClientID + "', '425', '356', '8', null, null, params, atts);</script>";
52: }
53: }
54: }
Fig – (6) Youtube asp.net aspx.cs page.
Happy Programming !!!
This sounds really great,i am searching for the same.I have to try this.You have put detailed information.
Thanks buddy.
Hi there,
This post discusses the Legacy YouTube API, which is deprecated. New keys are no longer being issued. Check out the new API at code.google.com/apis/youtube/. In particular, code.google.com/apis/youtube/developers_guide_dotnet.html.
Cheers,
Stephanie Liu
YouTube Developer Programs
Our forum can be found here:
groups.google.com/group/youtube-api
Thanks guys . Its a nice article .
hello ,
i want to implement single sign on on Youtube.
means that if i have username and password of youtube site then i can go directly to youtube site with login from my site….. so there is no need to login when i am redirect to you tube site…. is it possible?
pls tell me
thank you for sharing this usful informations 🙂
i really apreciate it 😉
hi,i m using ur above written code but it give error of can’t find table 2.
so want help from ur side
hi
your artical is nice.
if i want to integrate youtube with php then is it possible.
nice article….
hi, have you this code but in vb code… i try to chance this code in a vb. code traslator and dosnt work… any help?
thanxs.
Wanna know more abuot youtube . can u help?…
suscribirme a esta pgina
Hello Friends, I tried this code of you bt it gives an exception IndexOutOfRangeException (table 2 not find). So please give me a solution of this if u can ASAP.
hi,i m using ur above written code but it give error of can’t find table 2.
so want help from ur side
This is a great article. I really liked this. Now I will try this code and let you know.
Lovely, thank you.
Hi,
I receive server error “The remote server returned an error: (410) Gone.” when I run the program.
Please ssist!
I got error message as “The remote server returned an error: (410) Gone.” while running the application
Please send me a better solution
Hi,
I receive server error “The remote server returned an error: (410) Gone.” when I run the program.
tell me how to resolve this
Hi
I tried this code of yours, but it gives an error . So please give me a solution of this if u can ASAP.
everything is alright when i run the code and enter the text it saying
Webexception was unhandeled by the user code.
The remote server returned an error: (410) Gone.
wats the problem fix it plz reply me as soon as possible. thanks
Hi
Your code is very beneficial for uploading our own videos by coding
It would be nice to see this article updated so that this example would work without the 401-Gone error.
bhai youtube video ki link SQL database me store karke usko asp page me kese play karenge….
Whats up very nice website!! Guy .. Excellent .. Superb .. I’ll bookmark your website and take the feeds also?I’m happy to seek out a lot of useful info here within the put up, we want work out more techniques in this regard, thanks for sharing. . . . . .
Than you VerhulstGort1641@hotmail.com
Chirag Darji Sr. Dotnet Consultant https://chiragrdarji.wordpress.com/
An error occurred while parsing EntityName. Line 6, position 738 . i will get this error . plz help me.
At tҺіs time І am goiung ɑway to ɗo myy breakfast, аfter hɑving
my breakfast coming аgain to read mօre news.
Hi there! Do you know if they make any plugins to protect against hackers?
I’m kinda paranoid about losing everything I’ve worked hard on. Any recommendations?
Before going further, make sure that Coffee version 6 or later is
installed on your personal computer. The Shipibo designs are traditionally carried out on natural
un-dyed cotton (which they often grow themselves) or on cotton dyed
in mahogany bark (usually three or four times) which gives the distinctive brown colour.
That’s the whole deal behind those free i – Pad, i – Phone or
some other gadget giveaways.
What’s up, just wanted to tell you, I loved this blog post.
It was helpful. Keep on posting!
Why users still use to read news papers when in this technological globe the whole thing
is available on web?
Hello it’s me, I am also visiting this web page regularly, this web page is really pleasant and the
users are really sharing nice thoughts.
This post is truly a fastidious one it helps new net people, who are wishing for blogging.
Thanks for your personal marvelous posting! I seriously enjoyed reading it, you’re a great author.I
will always bookmark your blog and may come back down the
road. I want to encourage you to definitely continue your great writing,
have a nice weekend!
Hi there, its pleasant article regarding media print,
we all be familiar with media is a great source of data.
If you are considering risking money to
get into the binary options trading, first open a money-free trading account.
In financial conditions, a binary option is
that kind of option in which the payoff is sometimes
some fixed amount of any asset or free in any way. Remember that quality should be just as good as quantity when it
comes to the additional features of a binary options broker.
I assume now you consider “how to have FIFA 15 Coins and FIFA 15 Details for free?” I will
give you the solution on this problem. There’s an operating FIFA 15 Coins Compromise that may make you Free FIFA 15 Coins
and Free FIFA 15 Things at no cost. You don’t need to
get it. You can find absolutely no prices. Gamer for your player develops the Free FIFA 15 Money
Hack.
We swiftly decided to help it become public in-order stop EA
to take advantage of you, although truly this powerful FIFA 15 Money Generator was discussed limited to selected people.
Just imagine…you could have without paying any money, the very
best group. You may make this creativity true and there is totally damaging concerning the FUT 15 Hack.
Because FIFA 13 you’ll find only some Items /Coins Generator which are truly operating.
The FIFA 15 Coin Hack’s developer released not blame to utilize Coin Generator for FIFA 14 and FIFA 13 before.
They have numerous consumers that are happy. The FIFA 15 Hack can be obtained for your Xbox/ One 4 and PC.
Use and the download of the FIFA 15 Cash Generator is not difficult and rapid.
By simply a number of clicks you may get an incredible number of
15 Coins that are free.